<?php
namespace ZN\Services;

interface CrontabInterface
{
	//----------------------------------------------------------------------------------------------------
	// Driver
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $driver: empty
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function driver($driver);
	
	//----------------------------------------------------------------------------------------------------
	// Connect
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $path: empty
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function connect($config);
	
	//----------------------------------------------------------------------------------------------------
	// Path
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $path: empty
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function path($path);
	
	//----------------------------------------------------------------------------------------------------
	// Roster
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  void
	// @return string
	//
	//----------------------------------------------------------------------------------------------------
	public function roster();
	
	//----------------------------------------------------------------------------------------------------
	// Create File
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $name: crontab.txt
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function createFile($name);
	
	//----------------------------------------------------------------------------------------------------
	// Delete File
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $name: crontab.txt
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function deleteFile($name);
	
	//----------------------------------------------------------------------------------------------------
	// Remove
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $name: crontab.txt
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function remove($name);
	
	//----------------------------------------------------------------------------------------------------
	// Add
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  void
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function add();
	
	//----------------------------------------------------------------------------------------------------
	// Run
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $cmd: empty
	// @return string
	//
	//----------------------------------------------------------------------------------------------------
	public function run($cmd);
	
	//----------------------------------------------------------------------------------------------------
	// Debug
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  bool   $status: true
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function debug($status);

	//----------------------------------------------------------------------------------------------------
	// Command
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $command: empty
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function command($command);
	
	//----------------------------------------------------------------------------------------------------
	// Callback
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  function $callback: empty

	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function callback($callback);
	
	//----------------------------------------------------------------------------------------------------
	// After
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  function $callback: empty
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function after($callback);

	
	//----------------------------------------------------------------------------------------------------
	// Before
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  function $callback: empty
	// @return object
	//
	//----------------------------------------------------------------------------------------------------
	public function before($callback);
	
	//----------------------------------------------------------------------------------------------------
	// File
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $file: empty
	// @return string
	//
	//----------------------------------------------------------------------------------------------------
	public function file($file);
	
	//----------------------------------------------------------------------------------------------------
	// Url
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $file: empty
	// @param  bool   $type: wget, get, curl
	// @return string
	//
	//----------------------------------------------------------------------------------------------------
	public function url($url);
}